1. Technical Field
The present invention relates generally to a TCP (transmission control protocol) transmission system, and more specifically relates to a parallel implementation of a TCP sender comprising a transmit request handler and a transmitter.
2. Related Art
TCP (Transmission Control Protocol) is a connection-oriented transport protocol that sends data as an unstructured stream of bytes. By using sequence numbers and acknowledgment messages, TCP can provide a sending node with delivery information about packets transmitted to a destination node. Where data has been lost in transit from source to destination, TCP can retransmit the data until either a timeout condition is reached or until successful delivery has been achieved. TCP can also recognize duplicate messages and will discard them appropriately. If the sending computer is transmitting too fast for the receiving computer, TCP can employ flow control mechanisms to slow data transfer. TCP can also communicate delivery information to the upper-layer protocols and applications it supports.
TCP protocol was originally designed to be implemented as a single state machine (i.e., processing of events is serialized). However, as network transmission rates increase, straightforward serialization implementations fail to provide the required performance, both for conventional processor-based implementations, and for hardware implementations. A typical sequential TCP transmission implementation builds appropriate packets during handling of different events, including: when an application posts a request for data transmission; when an acknowledgement arrives from a remote TCP; when data arrives from a remote TCP, triggering transmission of a data acknowledgement; and when one of the transmission, persist or delayed ACK timers expire.
In current implementations, the requester (i.e., producer of the event) must wait until event processing, including packet generation, is complete before the requester can continue its work. Unfortunately, this can cause a significant slowdown for the communication network. Accordingly, a need exists for a more efficient TCP transmission system that allows the requester to continue working after an event is produced.